# _*_ coding utf-8 _*_
# george
# time: 2025/1/11上午11:49
# name: config.py
# comment:
# 全局通用配置 (无论什么开发环境都是不用改的)
import os


class Config(object):
    page_count = 7  # 前端页面一页显示的数据量

    # 项目根目录
    BASE_DIR = os.path.dirname(
        os.path.dirname(os.path.dirname(__file__))
    )

    # 目录字典
    LOGGING_DIC = {
        "version": 1.0,
        "disable_existing_log": False,
        # 日志格式,这里可以指定多种日志格式,这里的standard...就是对应日志名字
        "formatters": {
            "standard": {
                "format": '%(asctime)s %(name)s [%(pathname)s line:%(lineno)d]  %(message)s',
                "datefmt": "%Y-%m-%d %H:%M:%S"},
            "simple": {
                "format": '%(asctime)s %(name)s  %(message)s',
                "datefmt": "%Y-%m-%d %H:%M:%S"},
            "test": {"format": '%(asctime)s %(message)s'}
        },
        "filters": {},
        # 日志处理器:将记录的日志进行处理(输出到文件/显示到控制台)
        # 可以设置多个handler不同的handler做不同的处理,做不同的配置
        "handlers": {
            "console_debug_handler": {
                "level": 10,  # 日志处理的级别限制
                "class": "logging.StreamHandler",  # 输出到终端
                "formatter": "standard",  # 日志格式
            },
            "file_info_handler": {
                "level": 10,
                'class': "logging.handlers.RotatingFileHandler",
                "filename": os.path.join(BASE_DIR, "log", "user.log"),
                # 日志大小，10M,日志文件达到10M的时候进行轮转
                # 默认单位为字节，1KB 1024 Byte,1MB为1024KB
                "maxBytes": 20 * 1024 * 1024,
                "backupCount": 10,  # 日志文件保存数量的限制
                "encoding": "utf-8",
                "formatter": "standard"
            }
        },
        # 日志记录器
        "loggers": {
            "": {  # 导入时logging.getLogger时使用的app_name
                "handlers": ["console_debug_handler", "file_info_handler"],  # 日志将要分配给哪个handler进行日志处理
                "level": "DEBUG",  # 日志记录的级别限制,和handlers里面的日志一起组成两层日志过滤
                "propagate": False  # 默认为True,向更高级别的日志进行传递
            },

        }
    }


# 测试环境
class TestConfig(Config):
    db_url = "mysql+pymysql://root:123@localhost:3306/file_manage"  # 数据库位置
    if_echo = False
    all_user_passwd = "222"  # 统一的密码设置


# 生产环境
class ProductionConfig(Config):
    if_echo = False


config = {
    "test": TestConfig,
    "production": ProductionConfig
}

import logging.config

logging.config.dictConfig(Config.LOGGING_DIC)
